This is a misconception that has likely been compounded by the initial advice (by core Python folks, who eventually reverted their stance) on not doing this. For example, see this blog post
https://aroberge.blogspot.com/2009/08/crunchy-10-released.ht... from 2009 for a non-trivial program that supported Python 2.4, 2.5, 2.6 and 3.1. It was a bit of a pain as it dealt with lots of unicode/strings, but it was doable. It became easier to support both Python 2 and Python 3 later on, especially once Python 3.2 was released.