Python 3 provides many improvements over Python 2 including:
1) Improved comparison of different data types, iterators used more widely to reduce memory usage, and keyword-only arguments for cleaner function definitions.
2) Exceptions are now handled more cleanly with exception chaining and specific exception types for I/O errors.
3) Common library names and structures were standardized and new features were added like path handling, caching, subprocess management and async/await syntax.
4) Overall Python 3 rationalizes the language and standard library for modern use cases.