Não sei como vc fez com o A1, mas A3 vc tem que trabalhar com seleção de certificado, salvar a chave do mesmo em base de dados para recuperar o certificado quando desejar, a principio a ideia é a mesma do A1, mas vc tem opção de passar nas configurações o PIN do certificado para que não seja necessário o usuário digitar.
var certificadoDigital = new CertificadoDigital();
X509Certificate2 CertificadoSelecionado = certificadoDigital.Selecionar();
Salve o Thumbprint (string) do certificado em uma tabela na sua base, pegando a informação da propriedade:
CertificadoSelecionado.Thumbprint
Depois, na hora de utilizar, basta resgatar da seguinte forma:
X509Certificate2 CertificadoSelecionado = certificadoDigital.BuscarCertificadoDigital(thumbPrint);
Nas configurações passar o certificado e o PIN, assim:
var configuracao = new Configuracao
{
CertificadoDigital = CertificadoSelecionado,
CertificadoA3PIN = "123456",
TipoDFe = TipoDFe.NFe,
};
Em resumo é isso.
Atenciosamente,