Serial Monitor not working

Why does my serial monitor stop working after some modification in the void setup()?

Here's the scenario, I've been trying to make my Temp sensor and LCD works, so when I've coded the necessary 'begin' syntax for those two I'm expecting it work, but then I found out that the serial monitor doesn't even work.

Every time I add that "lcd.begin()" the serial monitor doesn't show anything even if the upload is successful, if there's no "lcd.begin()" the serial monitor works fine.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(32,16,2);


#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 4

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

#define Temp ({ sensors.requestTemperatures(); float TempReading = sensors.getTempCByIndex(0); Serial.println(TempReading); TempReading; })

void setup()
{
  Serial.begin(9600);
  sensors.begin();

//lcd.begin();
  
}

void loop()
{
  if (Temp <= 0)
  {
    Serial.print(" - Fahrenheit temperature: ");
    Serial.println(sensors.getTempFByIndex(0)); 
    Serial.println("It's Working!!!");
  }
  delay(1000);
}

It sounds like the LCD begins but does not finish. Use the Hello World sample from the LCD library to prove the LCD works.

Do you want address 39 decimal to represent 0x27? (replacing 32 decimal)

as @xfpd suggested it should look something like thls:
LiquidCrystal_I2C lcd2(0x25, 20, 4); // LCD2 at I2C address 0x25
Also post an annotated schematic showing exactly how you have wired this. But first run the I2C scanner program and see if that is the correct address. It should be between 0x20 and 0x27 but there are several other ranges depending on the particular port expander chosen for the display.