Submarines as they are now are frankly too overpowered as they have no reasonable counter that sits in the naval tab which is contrary to history.
There should be at least two additional ways of countering submarines beyond using fighters and spies to reveal them. These two methods should be a cheap naval escort:
Destroyer
10,000 Silver
3,000 Iron Ore
3,000 Coal
500 Oil
No Bombardment capabilities at all
Can detect submarines
Has an increased damage modifier against submarines, however Light Cruisers have a two times damage modifier against destroyers which means that despite having about 25-hp, you need a lot more destroyers to take down a single light cruiser
Observation Balloon
Changed so it can be able to spot submarines at close range
Cannot attack submarines at all
Must be within one waypoint of land/or ashore in order to detect submarines successfully
A further change to submarines is that when they are sailing with surface ships they are automatically detected as submarines did not have the speed submerged to sail with surface ships and that they must steam at high speed on the surface.