Точно также как меню предыдущего уровня. Там же идёт перебор уровней. И на каждом уровне у категории, есть поле child, которое хранит сведения о том есть дети у этой категории или нет.
Вот например вся конструкция для второго уровня:
{if !empty($dir.child)}
<ul {if $columns}class="{$columns}"{/if}>
{foreach from=$dir.child item=item}
<li {if in_array($item.fields.id, $pathids)}class="act"{/if} {$item.fields->getDebugAttributes()}><a href="{$item.fields->getUrl()}">{$item.fields.name}</a>
{/foreach}
</ul>
{/if}
Соответственно Вам нужно переделать, чтобы выводился третий уровень
{if !empty($dir.child)}
<ul>
{foreach from=$dir.child item=item}
<li {if in_array($item.fields.id, $pathids)}class="act"{/if} {$item.fields->getDebugAttributes()}><a href="{$item.fields->getUrl()}">{$item.fields.name}</a>
{if !empty($item.child)}
<ul>
{foreach from=$item.child item=subitem}
<li {if in_array($subitem.fields.id, $pathids)}class="act"{/if} {$subitem.fields->getDebugAttributes()}><a href="{$subitem.fields->getUrl()}">{$subitem.fields.name}</a>
</li>
{/foreach}
</ul>
{/if}
</li>
{/foreach}
</ul>
{/if}