Tried to update my widget to how you set it up but I still can't make it work.

WIDGET 1

HTML

<div class="panel panel-default"> 
    <sp-widget widget="data.editform"></sp-widget>

    <div class="panel-footer text-right">
    <button class="btn btn-primary xx">${Submit}</button>
    </div>
</div>

Client

function($uibModal, $scope, spUtil, spModal) {
	var c = this;
			
	//Trigger Save on Embdedded Widget Form
	spUtil.get("widget2").then(function(response){
		data.editform = response;
	});

}

Server

(function() {
 
	// Get table & sys_id
	data.table = input.table || $sp.getParameter("table");
	data.sys_id = input.sys_id || $sp.getParameter("sys_id");
 
	// Valid GlideRecord
	gr = new GlideRecord(data.table);
	if (!gr.isValid()) return;

	// Valid sys_id
	if (!gr.get(data.sys_id)) return;
	
	//Embed widget
	var WidgetParams = { table: data.table, sys_id: data.sysid, view: 'sp'};
				data.editform = $sp.getWidget('widget2', WidgetParams);
	
})();

Link

function(scope, element){
	$(".xx").click(function(){
		$("#hiddenButton").trigger("click");
	});
}

 

Widget 2 (Clone of OOB widget-form)

HTML (Just added the id=hiddenButton part, but I retained all the other OOB HTML code)

<div class="panel-footer" id="hidden">
      <button id="hiddenButton" ng-if="getPrimaryAction()" type="submit" ng-mousedown="triggerUIAction(getPrimaryAction())" class="btn btn-primary action-btn pull-right">${Save}</button>
</div>

Client, Server, Link

- No changes made