I load all my plugin HTML this way except for a basic layout that houses the loaded content.
const path = <path to an html file>;
const content = await fetch(path).text();
const container = document.querySelector("#<id of element in main html file in which to insert content>");
container.innerHTML = content;