Server stuff aside, since I don't use one... I used python 3 to develop scripts that worked in 2.7 and arcmaps arcpy long before ArcGIS pro was around.
You will notice many code bases that support python 2.x and 3.x rely on imports from the __future__ module
28.11. __future__ — Future statement definitions — Python 2.7.15 documentation
So it is not uncommon to see
from __future__ import (absolute_import, division,
print_function, unicode_literals)
from builtins import *
when people are writing code that needs to support the 2.7 and 3.x code base.
In general skip writing for 2.7, write for 3.x since 2.7 support is being dropped or has been dropped already by many of the python packages that people might use for gis applications (ie numpy, scipy, pandas etc etc)
You can also skip things altogether (I have had success with this) by writing for toolsets for use in arctoolbox in ArcGIS Pro 2.3, for example, then exporting them for use in versions of ArcMap....
/blogs/dan_patterson/2016/05/09/the-links provides links to some resources which might help make the transition...
But in any event
Python 2.7 Countdown is inevitable...