Is it possible to migrate apps and their data from one unrooted Android phone to another?
Helium has never been, nor ever will be, compatible with any device running anything less than Android 4.0


First things first: What you want cannot be achieved on not-rooted devices running a lower version of Android. Only with ICS (4.0), permissions of the ADB daemon have been alleviated to enable this (see: Full Backup of non-rooted devices).

For compatibility: What Helium does directly on the device, can be achieved from a computer connected with the device via USB, using the ADB tools: You can use the adb backup and adb restore commands, as described by answers to the linked question. There should be no compatibility issue, as long as your computer recognizes the device.

I have just had a similar issue: My main device needed to go for repair, so I had to migrate stuff to one of my "backup devices". Completely different brand, even different Android version. The above mentioned worked fine (working app-by-app, only "moving in" those ones I required). Just to ease the process (which I might need once more, or others might need), I wrote myself a little helper: If you're using Linux (or some other *nix coming with Bash), you might wish to take a look at Adebar – which not only creates you the scripts needed for backup/restore, but also to "re-freeze" apps you might have frozen on the original device, and additionally creates you a little "device documentation". Feedback welcome – and again the disclosure: I'm the author of that script.