Firstly, GPLv3 doesn't mention "internal use" at all, so the answer to the question in the title is "nothing".
That said, we already have a question that discusses whether sending code from one company, A, to another company, B, constitutes distributing it, and thus triggers GPL obligations. It concludes that it does, because A and B are separate organisations, even in the context of the question where A and B are wholly-owned by the same parent company, and so the analysis holds in your case, when A and B are unrelated.
The linked question also examines what the GPL FAQ has to say about how internal use within a single company doesn't constitute distribution, but notes that it's clear that "when the organization transfers copies to other organizations or individuals, that is distribution", which agrees with our analysis.
So: when company A gives a copy to company B, this is distribution, and the copy must come with full source code and GPL rights. However, the GPL FAQ also notes that you are not obliged by the GPL to share your code; it simply requires that when you do share your code, it must be done so under the terms of the GPL, and so with full source.
It therefore seems to me that, as long as both companies have full source code under GPL, each can share copies with its own employees under the traditional restrictions of employment, and have them develop and improve it, for internal use by both companies A and B. However, should either company choose to give a copy of this code to some third-party, this conveyance will need to be done under GPLv3, with full source and all GPL rights provided. Third-party, in this case, includes not only potential customers, but also contract resources retained by either A or B.