Help with delay

Hello guys, it's my first time here (please excuse my english), I'm having a problem with the delay in my code. the problem is, the delay is needed but it is making the code slow. If anyone would help me, I would be grateful, thanks!

Here's the code:

#include<LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);
#define in 14
#define out 19
#define relay 2
int count=0;
void IN()
{
    count++;
    lcd.clear();
    lcd.print("Person In Room:");
    lcd.setCursor(0,1);
    lcd.print(count);
    delay(1000);
}
void OUT()
{
  count--;
    lcd.clear();
    lcd.print("Person In Room:");
    lcd.setCursor(0,1);
    lcd.print(count);
    delay(1000);
}
void setup()
{
  lcd.begin(16,2);
  lcd.print("Visitor Counter");
  delay(2000);
  pinMode(in, INPUT);
  pinMode(out, INPUT);
  pinMode(relay, OUTPUT);
  lcd.clear();
  lcd.print("Person In Room:");
  lcd.setCursor(0,1);
  lcd.print(count);
}
void loop()
{  
  
  if(digitalRead(in))
  IN();
  if(digitalRead(out))
  OUT();
  
  if(count<=0)
  {
    lcd.clear();
    digitalWrite(relay, LOW);
    lcd.clear();
    lcd.print("Nobody In Room");
    lcd.setCursor(0,1);
    lcd.print("Light Is Off");
    delay(200);
  }
  
  else
    digitalWrite(relay, HIGH);
  
}

The delays in your loop are only 1000 mS , and it looks like your application is a meeting room attendance counter, which can't be that time critical.
Reduce the delay times in the loop if you can. If your delay is to stop unintended multiple button presses, look at some button debounce techniques.

The demo Several Things at a Time illustrates the use of millis() to manage timing without blocking.

I suggest you change the function names to something like personIN() and personOUT() in case IN and OUT have special significance elsewhere.

...R