Good question, but no definite answer, I'm afraid. First of all, remember that Python 3 is nearly 10 years old now (and Python 2 is nearly 18 years old!).
I'd say that Python 3 probably will be the dominant one for at least another couple of releases after 3.7, which should come out on Wednesday (Yay!). 3.7 is planned to be the main release for about 18 months, and I'd guess/predict/expect that the 3 series will stay around through 3.9... so that would be about 5 more years, as a guess.
That is only a guess, mind you.
HOWEVER, the change to Python 4 is
NOT planned to break backward compatibility in the way that the 2 to 3 change did, so whenever 4 does come I don't expect that it will obsolete things the way the 3 did.
As the author of a book tied to a version of Python I wish I had a clearer crystal ball, but I'm afraid that's as good as it gets.