Olá Matheus! Tudo certo? Espero que sim
Primeiramente gostaria de esclarecer que seus carros ainda estão lá, se mudar os seus eixos X para que se adeque a tela poderá vê-los. O empecilho para que eles atravessem a rua parece ser o movimento deles.
Bora dar uma olhada em seu código?
Analisando o seu código tenho algumas observações a fazer:
Movimento dos carros:
- Na função de movimento, quando vamos  utilizar as variáveis de imagens, ela não reconhece que há índices de onde será retirado os carros em
imagemCarro.length. Para que os carros recuperem seu movimento só precisa adicionar um s  no final de imagemCarro. 
function voltaPosiçãoInicialDoCarro(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
    if (passouTodaATela(xCarros[i])){
      xCarros[i] = 600;
    }
  }
}
Outras considerações:
- Na função 
passouTodaATela o xCarros está declarado como XCarro, tentando utilizar uma variável inexistente e fazendo os carros não retornarem 
function passouTodaATela(xCarros){
  return xCarros < - 50;
}
- A função de voltar à posição usou 
imagemCarro invés de imagemCarros, assim usando informação de load do primeiro carro e não dos índices e evitando os carros de voltarem; 
function voltaPosiçãoInicialDoCarro(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
    if (passouTodaATela(xCarros[i])){
      xCarros[i] = 600;
    }
  }
}
- Quanto as cores dos carros serem todas verdes, não sei se é proposital, mas se quiser mudar é só ir em
imagem.js  e mudar o para carro-1, carro2 ou carro-3 no load, assim como os arquivos que baixou e fez upload: 
    imagemCarro = loadImage("imagens/carro-1.png")
  imagemCarro2 = loadImage("imagens/carro-1.png")
  imagemCarro3 = loadImage("imagens/carro-1.png")
Se tiver qualquer dúvida, saiba que estou à disposição, conte comigo!
Um bom dia e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.