Python 3 attempted too much change at once. The Python folks could have spread incremental rollout of the changes across several major version numbers and probably not have faced such slow adoption.
I'm not sure that they could have spread it out. I believe that was the point of Python 3. Still, PHP may end up in the exact same position Python was in for the last decade, if they tried to do a similar change.
It could be worse of cause, they could end up like Perl 6 (now Raku), which makes Python 3 look like a successful transition in comparison.
Python 3 got this so, so wrong. It changed enough to break everyone's code, but not enough to make upgrading worthwhile.
It could have changed more, or changed less - done right, either would have been better than what actually happened.