python3: Oh, sorry, you used a feature that was added in 3.x and this system has 3.(x-1) so now you get SyntaxErrors, or worse, random runtime exceptions.
If you can target a container, buildpack or a specific platform python3 is fine, but it's been terrible for developers and users since day one. At least, it's been terrible for me, which is why I still have a pile of stuff to port to python3.
It's fine for something like go or rust to add new features in a dot release, where you just need to upgrade your development hosts. Besides, if it compiles it will work, no surprises later.
But python3 adds new features in 3.5, 3.6, 3.7 and then immediately breaks all new code on older systems.
Used f-strings? Now your code is broken on 3.5.
A new feature used the walrus operator? Now your code is broken on any system that doesn't have 3.8 yet.
And 'dead' python2 keeps working.