we can display subcategory and its child items in facet, it is three-layer view of facet category.

plp.addToViewContextDefinition('Facets.FacetedNavigationItemCategory.View','displayValues', 'array', function (context) {
var categoryinfo = plp.getCategoryInfo();
var categoriesConfig = Configuration.categories
var sideMenuSort = categoriesConfig.sideMenu.sortBy;
var additionalFieldsSide = categoriesConfig.sideMenu.additionalFields
var flagSide = _.contains(additionalFieldsSide, sideMenuSort);
if (!flagSide)
categoriesConfig.sideMenu.additionalFields.push(sideMenuSort)
var siblings = categoryinfo.siblings ? categoryinfo.siblings.length : 0;
var sequencenumber = parseInt(categoryinfo.sequencenumber);
var currentCategory = {
displayName: categoryinfo.name,
isActive: true,
label: categoryinfo.name,
link: categoryinfo.fullurl,
subCategory: (categoryinfo.categories) || [],
additionalFields: {
metakeywords: categoryinfo.metakeywords || '', undefined,
}
}
currentCategory.additionalFields[sideMenuSort] = categoryinfo[sideMenuSort]
if (categoryinfo.parenturl !== '') {
context.displayValues.push(currentCategory)
}
var sccategories = SC.CATEGORIES;
var parentcate = _.findWhere(sccategories, { name: currentCategory.displayName })
if (parentcate) {
_.each(returnData, function (list1) {
list1.categories = _.findWhere(parentcate.categories, { name: list1.displayName })
})
}
return returnData;
});