> require the Python 3 interpreter to be able to interpret Python 2 code as well as Python 3 code
Because that would make the interpreter a whole lot more complicated. A lot of technical debt was cleared with the 2-3 transition, adding it back in defeats the point.
C/C++ is different, C++ is a superset of C. That makes things a lot easier.
Edit: Ok, C++ is not a superset, common misconception.