They can also carry them in external LO pods. Much better than normal external carry, but obviously still not ideal compared to internal carry.
In terms of the arguments in favour of the J31 on size grounds, I do not really think that would be a good enough reason for the PLAN.
Let’s not forget that the PLAN has already made a similar choice in terms of aircraft performance vs numbers when they decided to develop the J15 rather than buy newerly updated Mig29Ks off the shelf from Russia.
When you factor in that Chinese naval aviation is focused overwhelmingly on naval battles rather than bombing 3rd world nations or terrorist training camps, you can see why they would value raw airframe capability over numbers.
I am also a strong believer that the proliferation of 5th gens will bring back a new golden age of dogfighting, as radar guided BVRAAMs are especially handicapped against 5th gens in terms of both likely engagement ranges and terminal seeker performance.
In that context, the J20’s side bays and likely superior kinetic performance, especially with WS15s, is likely to count for a lot in the eyes of PLAN planners.
The primary justification for the J31 is going to be on availability and cost grounds ( I am looking from only the PLAN’s POV, so ignoring political and industrial considerations).
However, with recent international developments, I think Trump has probably helped to push the J31 over the line. Since with trade wars, tensions are increasing, and the old assurances (China had that the US would hurt itself too much economically to start a fight against China) are slowly but steadily being stripped away, thus increasing the likelihood of actual armed conflict.
However, I do not think it would not out of the question for China to develop both a naval J20 and J31 and put both into operation.
We are now in deeply uncertain times, and may even already be in a de facto new Cold War. As such, normal rules and considerations may no longer apply to defence decisions.