To be clear, subs always fire in Opening Fire, before other units. The presence or absence of an enemy destroyer simply determines when subs’ casualties are removed. In your example, there is no attacking destroyer, so the casualties from the subs are removed immediately and will not get a chance to fire. If there had been an attacking destroyer, the subs’ casualties would get to return fire. Note that a sub hit by another sub will always fire, as both are firing simultaneously in Opening Fire.
In this game you don’t need destroyers in order to hit subs with air units. The fighters will get one round of fire before the subs can submerge. An attacking destroyer would simply keep the subs from submerging (forcing them to endure additional rounds of attacks) until the destroyer was sunk.