Sorry if this answer is too late to help you, but it looks like in your examples above you were trying to copy children of an axes object into a panel. In your first example, you could copy the axes (fig1_gca, from second example) into the panel p(1,1), or you could create a new axes in p(1,1) and copy the children of fig1_gca into that axes.
I had a similar question and this was my solution:
oldFigFiles = {'oldFig1.fig'; 'oldFig2.fig'};
nOldFig = numel(oldFigFiles);
newFig = figure('Name','oldFig contents in tabs');
tg = uitabgroup(newFig);
t = gobjects(nOldFig,1);
p = gobjects(nOldFig,1);
for i = 1:nOldFig
oldFig = openfig(oldFigFiles{i});
c = get(oldFig,'Children');
% Move contents of oldFig into current tab
t(i) = uitab(tg,'Title',oldFigFiles{i});
p(i) = uipanel(t(i));
copyobj(c,p(i));
delete(oldFig); % close old figure
end