That is because you are adding nodes to Gvsub and saving it in H, the Gvsub variable does not change and in next iteration, it again adds one node and save it in H while Gvsub remain constant in all loop iterations. To fix this, change the code as follow
Gv = graph({'s1' 's_1' 's2' 's_2' },{'s2' 's_2','s3' 's_3'});
Gv.Nodes.Service = {'s1','s2','s_1','s_2','s3','s_3'}';
Application = Gv.Nodes;
Gvsub = graph();
figure(3)
hold on
plot(Gvsub);
hold off
H = Gvsub;
for i = 1:numnodes(Gv)
if isempty(Gvsub.Nodes)
H = addnode(H,Gv.Nodes.Service(i));
else
H = addnode(H,Gv.Nodes.Service(i));
end
Application(1,:) = []; % REMOVING THE USED ROW AFTER BEING USED
end