correr dos programas a la vez

Hacer uso de los delay() es muy cómodo pero luego a la hora de la verdad, cuando el programa ya tiene un tamaño considerable, solo dan que problemas y hay que usar para todo la funcion millis()

Te he acortado el codigo un poco, no sé si te gustara:

// Constantes:
const int ledPin    = 13; 
const int ledPin3   = 6; 
const int buttonPin = 2;

// Variables:
long previousMillis = 0;
long interval       = 1000; 

void setup(){
  pinMode(ledPin, OUTPUT);   
  pinMode(ledPin3, OUTPUT);      
}

void loop(){
  digitalWrite(ledPin3, digitalRead(buttonPin));  
 
  if( millis() - previousMillis > interval )  {
    digitalWrite(ledPin, !digitalRead(ledPin) );
    previousMillis = millis();   
  }
}

Saludos!