I had something like this in mind:
# save
model1 = nn.Linear(10, 5)
model2 = nn.Linear(5, 2)

model1 = torch.jit.script(model1)
model2 = torch.jit.script(model2)

torch.jit.save(model1, 'model1.pt')
torch.jit.save(model2, 'model2.pt')


# load
class MyModel(nn.Module):
    def __init__(self, model1, model2):
        super().__init__()
        self.model1 = model1
        self.model2 = model2
        
    def forward(self, x):
        x = self.model1(x)
        x = self.model2(x)
        return x

model1 = torch.jit.load('model1.pt')
model2 = torch.jit.load('model2.pt')
model = MyModel(model1, model2)

x = torch.randn(1, 10)
out = model(x)
print(out.shape)
> torch.Size([1, 2])

I.e. just loading the models and using them wrapped in another parent model.