As duas formas há dois e a dois estão corretas, contudo seus significados são diferentes.

Ou seja, ambas as construções são válidas, devendo, no entanto, ser usadas em diferentes situações.

Há dois significa, basicamente, que existem dois (verbo haver no sentido de existir) – a quantidade correspondente a uma unidade mais uma.

Neste momento, há dois problemas.
Só há dois armários nesta roulotte.
Vejam que aqui há dois lugares.

Quando o verbo haver é usado no sentido de “tempo decorrido” estabelece uma relação de tempo atual – passado.

Morreu há dois anos num acidente doméstico.
Pesquiso esse assunto há dois anos.
Este e-mail chegou há dois minutos.

A construção a dois é usada no sentido de introduzir expressões que designam finalidade, tempo (futuro), preço, distância [na quantidade de dois].

Estamos a dois dias da partida.
A única fonte está localizada a dois quilômetros e meio.
Tenho isto resumido a dois grupos.

Algumas vezes usado para representado um par.

Esta tarefa tem que ser feito a dois.