We're in the process of moving from 2.6.4 to 3.4. I decided we'd finally crossed some ethereal line where Python 3-specific features in some third-party stuff was looking appealing. We also had a window of opportunity approaching where we could get the work done/tested. So off we went.
We have an embedded interpreter used by most of our large tools plus a standalone Python distribution we also build on-site. They are separate but share our internal libraries and most of the third-party ones we use, so they have to upgrade together. It's a slow process mainly because me and the other guy are often putting it on hold for other things.
Actually changing Python code for 3 isn't a big deal, even mountains of it. The 2to3 tool is pretty solid, and has literally saved me days. It was easy to write a couple custom "fixers" for it as well. If you're on 2.6 or 2.7 you can generally write very Python 3-compatible code anyway, which has reduced the changes necessary, for sure. The time has gone into upgrading/building/integrating the new releases of 40 or so third-party extensions we use. The big one for us has been wxPython. They rewrote a lot of it for Python 3 and it's only mostly finished. The incomplete bits haven't actually been an issue, it's the completed-but-with-rare-bugs parts. When we can focus on it we've been able to deal with the bugs, but due to competing priorities it's gone in fits and starts.
Our Maya Python tools are at 2.7.something and have their own build. It's insulated from the rest and I'm not touching that until we have to.