On the first iteration of the loop, the "hold on" command isn't called until after the first plot() object is overwritten. To fix that, move the "hold on" command to the line shown below.
%your code....
subplot(1,2,1);
plot(I,P,'.','markers',5,'color',CM(ii,:))
hold on %<---- move here
plot(I,fitplot,'-.','color',CM(ii,:))
xlabel('Current (mA)')
ylabel('Power (mW)')
%hold on % remove this