All three are Free* to try so if you still haven`t decided yet with which Engine you or your Team should go then my Advise would be to simple Download the Client and read or watch a few Tutorial for those Engine and sooner or later you should have decided with which Engine you will move forward.
*= The Mobile Build of the CryEngine can be requested from Crytek directly.
If you're talking about a "complete package" engine, I'd have to say either Unity (if you need to run on Mac AND Windows) or UDK (if you're ok with having to run it only in Windows).
CryENGINE 3 is also amazing on a technological and visual level, but the lack of documentation (and possible higher system requirements) makes it the weakest link, in my opinion.
At City State Entertainment we have been using Unity for most of our needs, it gives us the flexibility to produce for multiple platforms without a lot of hassle and it provides a great core for making the products we have and will be making.
That's not to say its the end all of engines, its good for making indie mobile games, and that's good enough for what we are doing.
If you're aiming for 2D try Multimedia Fusion 2 at www.Clickteam.com. I created the first version of my game, Pocket Ninjas, with it in just over 3 weeks. They also have Windows Phone, xBox, Flash, Java, and Android runtimes so you can pretty easily port your game to other markets.
We have started developing in Unity 3D half a year ago after one simple game in Cocos 2D. Unity is amazing in terms of speed, flexibility and many plug-ins. Our new game is also 2D but still we can make it in Unity pretty easy. The only bad thing is price of Pro version but if you don't mind Unity splash screen and missing Profiler then it is free.