Agrupar List utilizando ´DataGrid' do Primefaces 6.1

Bom dia pessoal, poderiam me dizer com eu poderia agrupar os produtos pela categoria utilizando um <p:dataGrid> do primefaces 6.1?

Eu tentei colocar um dataGrid dentro do dataTable mas os valores estão repetidos.

 <p:dataTable id="dataListarProdutosg" reflow="true"
				value="#{meuPedidoControlador.retornaListaProdutos()}"
				expandableRowGroups="true" sortBy="#{pg.subCategoria.nome}"
				emptyMessage="Nenhum produto encontrado" var="pg"
				style="margin:10px 0px 0px 10px">

				<p:headerRow>
					<p:column>
						<h:outputText style="font-size:14px"
							value="#{pg.subCategoria.nome}" />
					</p:column>
				</p:headerRow>

				<p:column>
					<p:dataGrid var="p"
						value="#{meuPedidoControlador.retornaListaProdutosSub(pg.subCategoria.id)}"
						columns="3" layout="grid" id="dataListarProdutos"
						binding="#{meuPedidoControlador.dataGrid}">

						<p:panelGrid columns="1" style="width:100%; height:100%">
							<p:commandButton title="" style="width:100%;height:100px;"
								value="#{p.nome}" process="@this"
								actionListener="#{meuPedidoControlador.addProdutoPedido}">
							</p:commandButton>
						</p:panelGrid>
					</p:dataGrid>
				</p:column>
			</p:dataTable>

Lista todos os produtos:
@PostConstruct

    public void init() {
  	produtos = produtoServico.listarInserirVenda();
     }

public List<Produto> retornaListaProdutosSub(Long id){
	return produtosGrid = produtoServico.listarPelaSubCat(id);
}

Os produtos se repetem