The goal is to fix #30030.
The root cause it unclear. However, hard-coding the port to 60000 does not seem ideal anyway. This could break in an unlikely setting where so many functional tests are run, such that the port is occupied. Also, it could fail when TEST_RUNNER_PORT_MIN is set sufficiently high. (This is purely theoretical, as I don’t think anyone would run a command like this, but on current master it fails, and on this pull it passes: TEST_RUNNER_PORT_MIN=60000 ./bld-cmake/test/functional/p2p_i2p_ports.py --portseed=0)
So fix those issues (and hopefully also 30030) by using an unoccupied p2p_port.
The logic is similar to the extra_port() logic in the feature_bind_extra.py test.