The answer to the last part of your question, "Also don't the older versions get removed automatically when newer versions are installed as in Windows?"
The answer is a clear and emphatic No.
Older versions do not get removed when new versions are installed.
Too much of our software ecosystem has been built on top of Python 2.x for it to be expendable. To remove it would break a lot of our commands.
Plus, Python 3 offers very little that is attractive to the Python 2.7 programmer. If you find you need those features then you have the option of using Python3. If not, people like me will stay with Python 2.x
As has been mentioned in the other answers, they are not really the same language anymore.
It is like the difference between programs that could work with Windows 98 but couldn't work on Windows 2000. Programs that you used under Win98 had to be re-released after being compiled for 2000 (32 bit). Windows 2000 did not catch on in the consumer market because it would cause those consumers to need to buy their favorite products again. Only with Windows XP did they finally make it so programs of both types could run under the same Windows OS. We are fortunate that Microsoft has learned from that lesson and that 32-bit and 64-bit programs can both be run on any modern version of Windows.
Back to the question in your title, "Do we need multiple versions of Python?" - it depends on what software you want to be able to use. One standout example is flightgear. Without Python3 it will not run.