Python 3 was introduced to make improvements upon python 2, but I think what you are asking is why they are not backwards compatible. Basically, developers deliberately made python 3 not backwards compatible, for two main reasons:
First of all, they wanted to change some things integral to python 2, and while the differences seemed small, the improvements that they had made would not have combined well with the existing structure. For example, the change to the "print" syntax you mentioned was made because print really is just calling a function, and really isn't a keyword in the same way that something like "if" or "while" is.
The other reason backwards compatibility was severed was to keep python 2 and 3 separate. Some people, including me, prefer python 2.7 over python 3. Because python 3 made larger changes to the language, developers wanted to maintain the two versions almost as separate (if quite similar) languages.
For all intents and purposes, if you use python 2.7, the only difference that should really affect you is the change in "print".