you can use HTL's template and call and also using them you can pass data.
Inside your component create a template folder(not mandatory but to maintain clean folder structure), under template folder, create a "template.html" file.
In "template.html", have your part-1 and part-2 variations like below.
<template data-sly-template.partOne="${@ dataObject}">your part 1 html code</template>
<template data-sly-template.partTwo="${@ dataObjectExample}">your part 2 html code</template>
on your component.html, you can use the above template file as below.
<sly data-sly-use.model="com.test.SampleModel">
<div data-sly-use.htmlVariation="/./template.html (path to template.html)">
<div data-sly-call="${htmlVariation.partOne @ dataObject=model.pageList1}"></div>
<div data-sly-call="${htmlVariation.partTwo @ dataObjectExample=model.pageList2}"></div>
</div>
</sly>
by using @ option, you can pass the date from your model to your respective template.